home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / cipher1a / cypher1.frm < prev    next >
Text File  |  1999-09-20  |  13KB  |  456 lines

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "Made by Chris Hultberg  9-20-99"
  5.    ClientHeight    =   3225
  6.    ClientLeft      =   1680
  7.    ClientTop       =   3225
  8.    ClientWidth     =   9015
  9.    Icon            =   "CYPHER1.frx":0000
  10.    LinkTopic       =   "Form1"
  11.    MaxButton       =   0   'False
  12.    MinButton       =   0   'False
  13.    PaletteMode     =   1  'UseZOrder
  14.    ScaleHeight     =   3225
  15.    ScaleWidth      =   9015
  16.    ShowInTaskbar   =   0   'False
  17.    Begin VB.CommandButton Command2 
  18.       Caption         =   "Paste"
  19.       Height          =   255
  20.       Left            =   4680
  21.       TabIndex        =   10
  22.       Top             =   2520
  23.       Width           =   855
  24.    End
  25.    Begin VB.CommandButton Command1 
  26.       Caption         =   "Copy"
  27.       Height          =   255
  28.       Left            =   3480
  29.       TabIndex        =   9
  30.       Top             =   2520
  31.       Width           =   975
  32.    End
  33.    Begin VB.CommandButton cmdDecipher 
  34.       Caption         =   "<<"
  35.       Enabled         =   0   'False
  36.       Height          =   495
  37.       Left            =   3960
  38.       TabIndex        =   7
  39.       Top             =   1800
  40.       Width           =   1095
  41.    End
  42.    Begin VB.CommandButton cmdCipher 
  43.       Caption         =   ">>"
  44.       Enabled         =   0   'False
  45.       Height          =   495
  46.       Left            =   3960
  47.       TabIndex        =   6
  48.       Top             =   1080
  49.       Width           =   1095
  50.    End
  51.    Begin VB.TextBox txtPassword 
  52.       Height          =   285
  53.       IMEMode         =   3  'DISABLE
  54.       Left            =   3600
  55.       PasswordChar    =   "*"
  56.       TabIndex        =   5
  57.       Top             =   480
  58.       Width           =   1815
  59.    End
  60.    Begin VB.TextBox txtCipher 
  61.       Height          =   2295
  62.       Left            =   5520
  63.       MultiLine       =   -1  'True
  64.       TabIndex        =   2
  65.       Top             =   120
  66.       Width           =   3375
  67.    End
  68.    Begin VB.TextBox txtPlain 
  69.       Height          =   2295
  70.       Left            =   120
  71.       MultiLine       =   -1  'True
  72.       TabIndex        =   0
  73.       Top             =   120
  74.       Width           =   3375
  75.    End
  76.    Begin VB.Label Label1 
  77.       Alignment       =   2  'Center
  78.       Caption         =   "Copyright (C) Chris Hultberg"
  79.       Height          =   255
  80.       Index           =   5
  81.       Left            =   2880
  82.       TabIndex        =   8
  83.       Top             =   2880
  84.       Width           =   3255
  85.    End
  86.    Begin VB.Label Label1 
  87.       Alignment       =   2  'Center
  88.       Caption         =   "Password"
  89.       Height          =   255
  90.       Index           =   2
  91.       Left            =   3600
  92.       TabIndex        =   4
  93.       Top             =   240
  94.       Width           =   1815
  95.    End
  96.    Begin VB.Label Label1 
  97.       Alignment       =   2  'Center
  98.       Caption         =   "Cipheredtext"
  99.       Height          =   255
  100.       Index           =   1
  101.       Left            =   5400
  102.       TabIndex        =   3
  103.       Top             =   2640
  104.       Width           =   3375
  105.    End
  106.    Begin VB.Label Label1 
  107.       Alignment       =   2  'Center
  108.       Caption         =   "Plaintext"
  109.       Height          =   255
  110.       Index           =   0
  111.       Left            =   0
  112.       TabIndex        =   1
  113.       Top             =   2640
  114.       Width           =   3375
  115.    End
  116.    Begin VB.Menu mnuFile 
  117.       Caption         =   "&File"
  118.       Begin VB.Menu mnuFileCope 
  119.          Caption         =   "&Copy"
  120.       End
  121.       Begin VB.Menu mnuFilePaste 
  122.          Caption         =   "&Paste"
  123.       End
  124.       Begin VB.Menu sep 
  125.          Caption         =   "-"
  126.       End
  127.       Begin VB.Menu mnuFileExit 
  128.          Caption         =   "E&xit"
  129.       End
  130.    End
  131.    Begin VB.Menu mnuEdit 
  132.       Caption         =   "&Edit"
  133.       Begin VB.Menu mnuEditTime 
  134.          Caption         =   "Time/&Date"
  135.       End
  136.    End
  137.    Begin VB.Menu mnuHelp 
  138.       Caption         =   "&Help"
  139.       Begin VB.Menu mnuHelpAbout 
  140.          Caption         =   "&About"
  141.       End
  142.    End
  143. End
  144. Attribute VB_Name = "Form1"
  145. Attribute VB_GlobalNameSpace = False
  146. Attribute VB_Creatable = False
  147. Attribute VB_PredeclaredId = True
  148. Attribute VB_Exposed = False
  149. Option Explicit
  150.  
  151. ' Encipher the text using the pasword.
  152. Private Sub Cipher(ByVal password As String, ByVal from_text As String, to_text As String)
  153. Const MIN_ASC = 32  ' Space.
  154. Const MAX_ASC = 126 ' ~.
  155. Const NUM_ASC = MAX_ASC - MIN_ASC + 1
  156.  
  157. Dim offset As Long
  158. Dim str_len As Integer
  159. Dim i As Integer
  160. Dim ch As Integer
  161.  
  162.     ' Initialize the random number generator.
  163.     offset = NumericPassword(password)
  164.     Rnd -1
  165.     Randomize offset
  166.  
  167.     ' Encipher the string.
  168.     str_len = Len(from_text)
  169.     For i = 1 To str_len
  170.         ch = Asc(Mid$(from_text, i, 1))
  171.         If ch >= MIN_ASC And ch <= MAX_ASC Then
  172.             ch = ch - MIN_ASC
  173.             offset = Int((NUM_ASC + 1) * Rnd)
  174.             ch = ((ch + offset) Mod NUM_ASC)
  175.             ch = ch + MIN_ASC
  176.             to_text = to_text & Chr$(ch)
  177.         End If
  178.     Next i
  179. End Sub
  180. ' Encipher the text using the pasword.
  181. Private Sub Decipher(ByVal password As String, ByVal from_text As String, to_text As String)
  182. Const MIN_ASC = 32  ' Space.
  183. Const MAX_ASC = 126 ' ~.
  184. Const NUM_ASC = MAX_ASC - MIN_ASC + 1
  185.  
  186. Dim offset As Long
  187. Dim str_len As Integer
  188. Dim i As Integer
  189. Dim ch As Integer
  190.  
  191.     ' Initialize the random number generator.
  192.     offset = NumericPassword(password)
  193.     Rnd -1
  194.     Randomize offset
  195.  
  196.     ' Encipher the string.
  197.     str_len = Len(from_text)
  198.     For i = 1 To str_len
  199.         ch = Asc(Mid$(from_text, i, 1))
  200.         If ch >= MIN_ASC And ch <= MAX_ASC Then
  201.             ch = ch - MIN_ASC
  202.             offset = Int((NUM_ASC + 1) * Rnd)
  203.             ch = ((ch - offset) Mod NUM_ASC)
  204.             If ch < 0 Then ch = ch + NUM_ASC
  205.             ch = ch + MIN_ASC
  206.             to_text = to_text & Chr$(ch)
  207.         End If
  208.     Next i
  209. End Sub
  210.  
  211.  
  212. ' Translate a password into an offset value.
  213. Private Function NumericPassword(ByVal password As String) As Long
  214. Dim value As Long
  215. Dim ch As Long
  216. Dim shift1 As Long
  217. Dim shift2 As Long
  218. Dim i As Integer
  219. Dim str_len As Integer
  220.  
  221.     str_len = Len(password)
  222.     For i = 1 To str_len
  223.         ' Add the next letter.
  224.         ch = Asc(Mid$(password, i, 1))
  225.         value = value Xor (ch * 2 ^ shift1)
  226.         value = value Xor (ch * 2 ^ shift2)
  227.  
  228.         ' Change the shift offsets.
  229.         shift1 = (shift1 + 7) Mod 19
  230.         shift2 = (shift2 + 13) Mod 23
  231.     Next i
  232.     NumericPassword = value
  233. End Function
  234.  
  235. Private Sub cmdCipher_Click()
  236. Dim cipher_text As String
  237.  
  238.     Cipher txtPassword.Text, txtPlain.Text, cipher_text
  239.     txtCipher.Text = cipher_text
  240. End Sub
  241. Private Sub cmdDecipher_Click()
  242. Dim plain_text As String
  243.  
  244.     Decipher txtPassword.Text, txtCipher.Text, plain_text
  245.     txtPlain.Text = plain_text
  246. End Sub
  247. Private Sub Command1_Click()
  248.     ' Copy the selected text onto the Clipboard.
  249.     Clipboard.SetText txtCipher
  250. End Sub
  251.  
  252. Private Sub Command2_Click()
  253.     Form1.txtCipher = Clipboard.GetText()
  254. End Sub
  255.  
  256. Private Sub Label1_Click(Index As Integer)
  257.     txtPlain.Text = "2002 Kix Ass!"
  258. End Sub
  259.  
  260. Private Sub mnuEditTime_Click()
  261.     txtCipher.Text = Now
  262.     txtPlain.SelText = Now
  263. End Sub
  264. Private Sub mnuHelpAbout_Click()
  265.     About.Show 1
  266. End Sub
  267.  
  268. Private Sub mnuFileCope_Click()
  269.     Clipboard.SetText txtCipher
  270. End Sub
  271.  
  272. Private Sub mnuFileExit_Click()
  273.     End
  274. End Sub
  275.  
  276. Private Sub mnuFilePaste_Click()
  277.     Form1.txtCipher = Clipboard.GetText()
  278. End Sub
  279.  
  280.  
  281.  
  282. Private Sub txtCipher_Change()
  283.    If txtCipher.Text = "A" Then
  284.    txtCipher.Text = "Dont type anything here."
  285.    End If
  286.    If txtCipher.Text = "a" Then
  287.    txtCipher.Text = "Dont type anything here."
  288.    End If
  289.    If txtCipher.Text = "B" Then
  290.    txtCipher.Text = "Dont type anything here."
  291.    End If
  292.    If txtCipher.Text = "b" Then
  293.    txtCipher.Text = "Dont type anything here."
  294.    End If
  295.    If txtCipher.Text = "C" Then
  296.    txtCipher.Text = "Don